package per.dg.tools;

import android.content.Context;
import android.os.Vibrator;

public class VibrateManager {

    private static VibrateManager INSTANCE;

    public static VibrateManager getInstance(Context mContext){
        if(INSTANCE == null){
            synchronized (VibrateManager.class){
                if(INSTANCE == null){
                    INSTANCE = new VibrateManager(mContext);
                }
            }
        }
        return INSTANCE;
    }

    private Vibrator vibrator;

    private VibrateManager(Context mContext){
        vibrator = (Vibrator) mContext.getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
    }

    /**
     * 设置震动（默认不循环）
     * @param pattern 数组的a[0]表示静止的时间，a[1]代表的是震动的时间，然后数组的a[2]表示静止的时间，a[3]代表的是震动的时间……依次类推下去
     *                单位：毫秒
     */
    public void vibrate(long[] pattern){
        vibrate(pattern, -1);
    }

    /**
     * 设置震动模式
     * @param pattern 数组的a[0]表示静止的时间，a[1]代表的是震动的时间，然后数组的a[2]表示静止的时间，a[3]代表的是震动的时间……依次类推下去
     *                单位：毫秒
     * @param repeat 循环模式 0 循环 -1 不循环
     */
    public void vibrate(long[] pattern, int repeat){
        vibrator.vibrate(pattern, repeat);
    }

    /**
     * 循环状态下，取消震荡
     */
    public void cancel(){
        vibrator.cancel();
    }

}
